package com.lvbaoins.creditapp.model;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * <p>
 * 保易分客户公司基本信息
 * </p>
 *
 * @author gjb
 * @since 2020-04-24
 */
@Data
public class InsCustomer implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 渠道代码
     */
    private String channelCode;

    /**
     * 渠道名称
     */
    private String channelName;

    /**
     * 代理人代码
     */
    private String agentCode;

    /**
     * 代理人名称
     */
    private String agentName;

    /**
     * 用户代码
     */
    private String customerCode;

    /**
     * 用户名称
     */
    private String customerName;

    /**
     * 通讯地址
     */
    private String address;

    /**
     * 法人姓名
     */
    private String legalName;

    /**
     * 法人身份证号
     */
    private String legalCardNo;

    /**
     * 法人电话
     */
    private String legalTel;
    
    /**
     * 法人证件到期时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm")
    private LocalDate legalCardLimit;

    /**
     * 客户电话
     */
    private String customerTel;

    /**
     * 联系人邮箱
     */
    private String contactEmail;

    /**
     * 证件类型，1-营业执照，2-身份证
     */
    private Integer cardType;

    /**
     * 证件号码
     */
    private String cardNo;
    
    /**
     * 企业中征码
     */
    private String loanCode;

    /**
     * 证件地址
     */
    private String cardAddress;

    /**
     * 证件起始时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm")
    private LocalDate cardStart;

    /**
     * 证件到期时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm")
    private LocalDate cardLimit;

    /**
     * 经办人是否是法人
     */
    private Integer contactIsLegal;

    /**
     * 经办人名称
     */
    private String contactName;

    /**
     * 经办人联系电话
     */
    private String contactTel;
    
    /**
     * 个人或经办人省份编码
     */
    private String provinceCode;
    
    /**
     * 个人或经办人城市编码
     */
    private String cityCode;
    
    /**
     * 个人或经办人区县编码
     */
    private String countyCode;
    
    /**
     * 个人或经办人户籍街道
     */
    private String street;
    
    /**
     * 企业注册地省份编码
     */
    private String companyProvinceCode;
    
    /**
     * 企业注册地城市编码
     */
    private String companyCityCode;
    
    /**
     * 企业注册地区县编码
     */
    private String companyCountyCode;
    
    /**
     * 企业注册地街道
     */
    private String companyStreet;
    
    /**
     * 企业经营范围
     */
    private String companyScope;
    
    /**
     * 企业注册资本（万）
     */
    private BigDecimal companyAmount;

    /**
     * 经办人身份证号码
     */
    private String contactCardNo;

    /**
     * 经办人身份证正面
     */
    private String contactSfzUrl1;

    /**
     * 经办人身份证反面
     */
    private String contactSfzUrl2;

    /**
     * 经办人授权协议（中信）
     */
    private String contactAuthUrl;
    
    /**
     * 经办人授权协议（乐意保）
     */
    private String contactAuthLybUrl;

    /**
     * 实控人是法人
     */
    private Integer controlIsLegal;
    
    /**
     * 实际控制人类型 01-个人，02-企业
     */
    private String controlType;

    /**
     * 实际控制人名称
     */
    private String controlName;

    /**
     * 实际控制人证件号码
     */
    private String controlCardNo;

    /**
     * 实际控制人联系电话
     */
    private String controlTel;

    /**
     * 实际控制人证件1
     */
    private String controlCardUrl1;

    /**
     * 实际控制人证件2
     */
    private String controlCardUrl2;

    /**
     * 法人身份证正面
     */
    @TableField(value = "sfz_1_url")
    private String sfz1Url;

    /**
     * 法人身份证反面
     */
    @TableField(value = "sfz_2_url")
    private String sfz2Url;

    /**
     * 营业执照url
     */
    private String yyzzUrl;

    /**
     * 开户许可证url
     */
    private String khxkzUrl;

    /**
     * 开户银行
     */
    private String bankName;

    /**
     * 开户账号
     */
    private String bankAccount;
    
    /**
     * 开户行联网行号
     */
    private String accountBankCode;

    /**
     *开票地址
     */
    private String customerInvoiceAddress;

    /**
     * 开票电话
     */
    private String customerInvoiceTel;

    /**
     * 发票收件地址
     */
    private String invoiceAddress;

    /**
     * 发票收件人
     */
    private String invoiceReceiver;

    /**
     * 发票人电话
     */
    private String receiverTel;

    /**
     * 是否删除 0-否 1-是
     */
    private Integer delFlg;
    
    /**
     * 状态 1-待审核，2-审核通过，3-审核不通过，4-同步中信成功，5-同步中信失败，6-中信预授信成功，7-中信预授信失败
     */
    private Integer status; 
    
    /**
     * 客户类型 1-企业，2-个人，3-个人挂靠企业
     */
    private Integer customerType;
    
    /**
     * 挂靠企业名称
     */
    private String linkName;
    
    /**
     * 挂靠企业编号
     */
    private String linkCode;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 修改时间
     */
    private LocalDateTime updateTime;

    /**
     * 企业代码类型
     */
    private String entCodeType;


    /**
     *银行对公流水url
     */
    private String accountFlowUrl;

    /**
     * 企业征信查询授权书url
     */
    private String creditAuthorizeUrl;

    private Integer mxhStatus;

    private Integer bdyStatus;

}
